table of contents
PAPI_remove_event(3) | PAPI | PAPI_remove_event(3) |
NAME¶
PAPI_remove_event - remove PAPI preset or native hardware event from an EventSet PAPI_remove_events - remove PAPI presets or native hardware events from an EventSet
SYNOPSIS¶
C Interface
#include <papi.h> int PAPI_remove_event(int EventSet, int EventCode); int PAPI_remove_events(int EventSet, int *EventCode, int number);
Fortran Interface
#include fpapi.h PAPIF_remove_event(C_INT EventSet, C_INT EventCode, C_INT check) PAPIF_remove_events(C_INT EventSet, C_INT(*) EventCode, C_INT number, C_INT check)
DESCRIPTION¶
PAPI_remove_event() removes a hardware event to a PAPI event set. PAPI_remove_events() does the same, but for an array of hardware event codes.
A hardware event can be either a PAPI Preset or a native hardware event code. For a list of PAPI preset events, see PAPI_presets(3) or run the avail test case in the PAPI distribution. PAPI Presets can be passed to PAPI_query_event(3) to see if they exist on the underlying architecture. For a list of native events available on current platform, run native_avail test case in the PAPI distribution. For the encoding of native events, see PAPI_event_name_to_code(3) to learn how to generate native code for the supported native event on the underlying architecture."
It should be noted that PAPI_remove_events can partially succeed, exactly like PAPI_add_events.
ARGUMENTS¶
EventSet -- an integer handle for a PAPI event set as created by PAPI_create_eventset(3)
EventCode -- a defined event such as PAPI_TOT_INS or a native event.
*EventCode -- an array of defined events
number -- an integer indicating the number of events in the array *EventCode
RETURN VALUES¶
On success, these functions return PAPI_OK. On error, a less than zero error code is returned or the the number of elements that succeeded before the error.
ERRORS¶
- Positive integer
- The number of consecutive elements that succeeded before the error.
- PAPI_EINVAL
- One or more of the arguments is invalid.
- PAPI_ENOEVST
- The EventSet specified does not exist.
- PAPI_EISRUN
- The EventSet is currently counting events.
- PAPI_ECNFLCT
- The underlying counter hardware can not count this event and other events in the EventSet simultaneously.
- PAPI_ENOEVNT
- The PAPI preset is not available on the underlying hardware.
EXAMPLES¶
int EventSet = PAPI_NULL; unsigned int native = 0x0; if (PAPI_create_eventset(&EventSet) != PAPI_OK)
handle_error(1); /* Add Total Instructions Executed to our EventSet */ if (PAPI_add_event(EventSet, PAPI_TOT_INS) != PAPI_OK)
handle_error(1); /* Start counting */ if (PAPI_start(EventSet) != PAPI_OK)
handle_error(1); /* Stop counting, ignore values */ if (PAPI_stop(EventSet, NULL) != PAPI_OK)
handle_error(1); /* Remove event */ if (PAPI_remove_event(EventSet, PAPI_TOT_INS) != PAPI_OK)
handle_error(1);
BUGS¶
The vector function should take a pointer to a length argument so a proper return value can be set upon partial success.
SEE ALSO¶
PAPI_preset(3), PAPI_add_event (3), PAPI_add_events (3), PAPI_cleanup_eventset(3), PAPI_destroy_eventset(3), PAPI_event_name_to_code(3)
September, 2004 | PAPI Programmer's Reference |